package com.spring.proxy;

// 静态代理 模拟

import org.springframework.stereotype.Component;

// 静态代理实现类
public class StaticProxy implements Calculator{

    private Calculator calculator; // 通过有参构造将需要被代理的对象传递过来
    public StaticProxy(Calculator calculator) {
        this.calculator = calculator;
    }

    public int add(int i, int j) {
        // 代理
        System.out.println("静态代理，之前。。。。。。");
        // 核心业务
        int result = calculator.add(i,j);
        // 代理
        System.out.println("静态代理，之后。。。。。。");
        return result;
    }

    // 测试
    public static void main(String[] args) {
        Calculator calculator1 = new CalculatorImpl();
        new StaticProxy(calculator1).add(1,2);
    }
}